package com.java.core1.chapter3;
import java.util.ArrayList;
import java.util.List;

import org.junit.Test;

import junit.framework.Assert;
/**
* @author ClearScenery
* @version 创建时间：2019年3月7日 上午9:41:22
* @ClassName StringTest
* @Description 
*/
public class StringTest {
	//Java字符串就是Unicode字符串序列。串"Java\u2122" 由5个Unicode字符J、a、v、a和TM组成
	//Java没有内置的字符串类型，而是在标准Java类库中提供了预定义类，自然也叫做String。
	@Test
	public void testSubString() {
		//substring 的工作方式有一个优点：容易计算子串的长度
		String greeting = "Hello";
		//包括起始位，不包括结束位[0,3)
		String s = greeting.substring(0,3);
		//字串长度为3-0=3
		Assert.assertEquals("Hel", s);
		System.out.println(s);
	}
	
	@Test
	public void testJoint() {
		//任何一个 Java对象都可以转换成字符串.toString()
		String expletive = "Expletive";
		String PG13 = "deleted";
		String messege = expletive + PG13;
		System.out.println(messege);
	 
		
		//String.join()//用一个定界符分隔   ===>Java8版本
		String join = String.join("/", "abcd","ccc","ccc","ccc");//第一个参数是分隔符，第二个可变参数
		System.out.println(join);
		
		//方法重载
		List<String> list = new ArrayList<>();
		list.add("a");
		list.add("b");
		list.add("c");
		list.add("d");
		String join2 = String.join(";", list);//第一个参数是分隔符，第二个可迭代的数组或集合
		System.out.println(join2);
	}
	
	@Test
	public void testImmutable() {
		//Java 的设计者认为共享带来的高效率远远胜过于提取、拼接字符串所带来的低效率,但是，不可变字符串却有一个优点：编译器可以让字符串共享
		//总而言之，Java 的设计者认为共享带来的高效率远远胜过于提取、拼接字符串所带来的
		//低效率
	}
	
}
